package IT.Helper;

import IT.Entities.UsuarioMenu;
import IT.Entities.UsuarioPermiso;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.sql.Date;
import java.util.Calendar;

public class Helper {
    private boolean bValida;

     public boolean esCorreo(String cCorreo){
          Pattern pattern;
          Matcher matcher;
          pattern = Pattern.compile("^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$");
          matcher = pattern.matcher(cCorreo);
          return matcher.matches();
     }
     
     public boolean esFechaValida(String fechax) {
         
        try {
        SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy",Locale.getDefault());
        formatoFecha.setLenient(false);
        formatoFecha.parse(fechax);
        } catch (ParseException e) {
        return false;
        }
        return true;
     }

     public boolean ValidaMenu(String cMenu,List<UsuarioMenu> oLista){
         bValida=false;
         
         for(UsuarioMenu ent:oLista){
            if(ent.getNom_mnu_vc().trim().equals(cMenu.trim())){
                bValida=true;
                return bValida;
            }
         }
         return bValida;
     }    
     
     public int getCodigoMenu(String cMenu,List<UsuarioMenu> oLista){
         int nCodigo=0;
         
         for(UsuarioMenu ent:oLista){
            if(ent.getNom_mnu_vc().trim().equals(cMenu.trim())){
                nCodigo=ent.getCod_mnu_in();
                return nCodigo;
            }
         }
         return nCodigo;
     }    
     
     public boolean getAccion(String cMenu,int nAccion,List<UsuarioPermiso> oLista){
         bValida=false;
         
         for(UsuarioPermiso ent:oLista){
            if(ent.getNom_mnu_vc().trim().equals(cMenu.trim()) &&
               ent.getTip_perdet_in()==nAccion){  
                bValida=true;
                return bValida;
            }
         }
         return bValida;
     }    
       
     public boolean ValidaTipo(int nTipo,List<UsuarioMenu> oLista){
         bValida=false;
         
         for(UsuarioMenu ent:oLista){
            if(ent.getTip_mnu_in()==nTipo){
                bValida=true;
                return bValida;
            }
         }
         return bValida;
     }
     
     public boolean ValidaAccion(int nPerfil,int nMenu,int nAccion,List<UsuarioPermiso> oLista){
         bValida=false;
         
         for(UsuarioPermiso ent:oLista){
            if(ent.getCod_per_in()==nPerfil && ent.getCod_mnu_in()==nMenu &&
                    ent.getTip_perdet_in()==nAccion){
                bValida=true;
                return bValida;
            }
         }
         return bValida;
     }  
      
     public Date crearFecha(String s){
        java.sql.Date dte=null;
        try{
        String str = s;
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
        java.util.Date dt = formatter.parse(str);
        dte=new java.sql.Date(dt.getTime());
        }catch(Exception e){
        e.printStackTrace();	
        }
        return dte;
      }   
      
     public String getFechaActual(){
        java.util.Date dFecha=new java.util.Date();
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        return formato.format(dFecha);        
     }
      
     public String getFechaActual(int nDia){
        java.util.Date dFecha=new java.util.Date();
        Calendar cal = Calendar.getInstance();
        cal.setTime(dFecha);
        cal.add(Calendar.DATE,nDia);
        
        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
        return formato.format(cal.getTime());        
     }
      
     public Date getdFechaActual(){
        java.sql.Date dte=null;
        try{       
            java.util.Date dt = new java.util.Date();
            dte=new java.sql.Date(dt.getTime());
        }catch(Exception e){
        e.printStackTrace();	
        }
        return dte;
     }

     public String getFechaActualImg(){
        java.util.Date dFecha=new java.util.Date();
        SimpleDateFormat formato = new SimpleDateFormat("ddMMyyyyhhmmss");
        return formato.format(dFecha);        
     }
           
     public String ValidaEncode(String texto){ 
        try {
            //texto = new String(texto.getBytes(), "UTF-8");
            //texto = new String(texto.getBytes(),"ISO-8859-1");
            texto = new String(texto.getBytes(),"ISO-8859-1");
            return texto;
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, null, ex);
        }
        return texto;
     }

      
      /*public String ValidaEncode(String cValor){
        String cResultado="";
        try {
             cResultado=java.net.URLDecoder.decode(cValor, "UTF-8");
        } catch (UnsupportedEncodingException ex) {
            Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, null, ex);
        }
        return cResultado;
      }*/
    
             
      
}
